#include <iostream>
#include <string>

using namespace std;

// 数组

// 类 结构体
// void print(const int *  arr )
// {

// }

// 数组特化  数组特化 --->>> const T (&arr)[N]
template <typename T, size_t N>
void print(const T (&arr)[N])
{
    cout << N << endl;
    for (size_t i = 0; i < N; i++)
    {
        cout << arr[i] << endl;
    }
}

// 类特化
class stu
{
private:
    string name;
    int id;
public:
    stu(/* args */)
    {
    }
    stu(string name ,  int id)
        : name(name) , id(id)
    {

    }
    ~stu()
    {
    }


public:
    // L.operator==(R)
    // bool operator==(stu & R)
    // {
    //     if(this->name == R.name)
    //     {
    //         if(this->id == R.id)
    //         {
    //             return 1;
    //         }
    //     }
    //     return 0;
    // }
};

// 特化  函数模板中 类的特化 就是需要针对 某个函数 去做内部的调整
// 讲类传入到函数模板中  如果这个函数 做了 运算符 类中就要做运算符重载
template <typename T>
void Func( T & L , T & R )
{
    if(L == R)
    {
        cout << "相等" << endl;
    }

    cout << "不相等" << endl;
}

int main(int argc, char const *argv[])
{
    stu s1("张三" , 1);
    stu s2("张三" , 1);
    int i = 5;
    int a = 5;
    Func(s1 , s2);

    return 0;
}



